home *** CD-ROM | disk | FTP | other *** search
/ Motor Sport Digital Archive Collection 1960s / Motor Sport Digital Archive Collection 1960s.iso / main.swf / scripts / mx / rpc / AsyncToken.as < prev    next >
Encoding:
Text File  |  2008-05-21  |  2.7 KB  |  110 lines

  1. package mx.rpc
  2. {
  3.    import flash.events.EventDispatcher;
  4.    import mx.core.mx_internal;
  5.    import mx.events.PropertyChangeEvent;
  6.    import mx.messaging.messages.IMessage;
  7.    import mx.rpc.events.FaultEvent;
  8.    import mx.rpc.events.ResultEvent;
  9.    
  10.    use namespace mx_internal;
  11.    
  12.    public dynamic class AsyncToken extends EventDispatcher
  13.    {
  14.       private var _message:IMessage;
  15.       
  16.       private var _responders:Array;
  17.       
  18.       private var _result:Object;
  19.       
  20.       public function AsyncToken(param1:IMessage)
  21.       {
  22.          super();
  23.          _message = param1;
  24.       }
  25.       
  26.       mx_internal function setMessage(param1:IMessage) : void
  27.       {
  28.          _message = param1;
  29.       }
  30.       
  31.       public function get message() : IMessage
  32.       {
  33.          return _message;
  34.       }
  35.       
  36.       mx_internal function applyFault(param1:FaultEvent) : void
  37.       {
  38.          var _loc2_:uint = 0;
  39.          var _loc3_:IResponder = null;
  40.          if(_responders != null)
  41.          {
  42.             _loc2_ = 0;
  43.             while(_loc2_ < _responders.length)
  44.             {
  45.                _loc3_ = _responders[_loc2_];
  46.                if(_loc3_ != null)
  47.                {
  48.                   _loc3_.fault(param1);
  49.                }
  50.                _loc2_++;
  51.             }
  52.          }
  53.       }
  54.       
  55.       [Bindable(event="propertyChange")]
  56.       public function get result() : Object
  57.       {
  58.          return _result;
  59.       }
  60.       
  61.       mx_internal function setResult(param1:Object) : void
  62.       {
  63.          if(_result !== param1)
  64.          {
  65.             dispatchEvent(PropertyChangeEvent.createUpdateEvent(this,"result",_result,_result = param1));
  66.          }
  67.       }
  68.       
  69.       public function addResponder(param1:IResponder) : void
  70.       {
  71.          if(_responders == null)
  72.          {
  73.             _responders = [];
  74.          }
  75.          _responders.push(param1);
  76.       }
  77.       
  78.       public function hasResponder() : Boolean
  79.       {
  80.          return _responders != null && _responders.length > 0;
  81.       }
  82.       
  83.       mx_internal function applyResult(param1:ResultEvent) : void
  84.       {
  85.          var _loc2_:uint = 0;
  86.          var _loc3_:IResponder = null;
  87.          mx_internal::setResult(param1.result);
  88.          if(_responders != null)
  89.          {
  90.             _loc2_ = 0;
  91.             while(_loc2_ < _responders.length)
  92.             {
  93.                _loc3_ = _responders[_loc2_];
  94.                if(_loc3_ != null)
  95.                {
  96.                   _loc3_.result(param1);
  97.                }
  98.                _loc2_++;
  99.             }
  100.          }
  101.       }
  102.       
  103.       public function get responders() : Array
  104.       {
  105.          return _responders;
  106.       }
  107.    }
  108. }
  109.  
  110.